
package com.trial.area.address.entity;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;

/**
 * 收货地址实体类
 *
 * @author 朱国军
 * @version 2016年07月17日 朱国军
 */
public class DeliveryAddressVO {
    
    /** 收货地址ID */
    private String deliveryAddressId;
    
    /** 用户ID */
    private String userId;
    
    /** 收货省份 */
    private String deliveryProvince;
    
    /** 收货城市 */
    private String deliveryCity;
    
    /** 收货区县 */
    private String deliveryRegion;
    
    /** 收货详细地址 */
    private String deliveryAddress;
    
    /** 是否默认地址 */
    private Integer isDefaultAddress;
    
    /** 联系电话 */
    private String contactPhone;
    
    /** 联系人 */
    private String contactName;
    
    /** 创建人 */
    private String createUser;
    
    /** 创建时间 */
    private Date createTime;
    
    /** 更新时间 */
    private Date updateTime;
    
    /** 状态：0默认，1管理员删除，2用户删除 */
    private Integer dataStatus;
    
    /**
     * 设置收货地址ID
     *
     * @param deliveryAddressId 收货地址ID
     */
    public void setDeliveryAddressId(String deliveryAddressId) {
        this.deliveryAddressId = deliveryAddressId;
    }
    
    /**
     * 获取收货地址ID
     *
     * @return 收货地址ID
     */
    public String getDeliveryAddressId() {
        return deliveryAddressId;
    }
    
    /**
     * 设置用户ID
     *
     * @param userId 用户ID
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }
    
    /**
     * 获取用户ID
     *
     * @return 用户ID
     */
    public String getUserId() {
        return userId;
    }
    
    /**
     * 设置收货省份
     *
     * @param deliveryProvince 收货省份
     */
    public void setDeliveryProvince(String deliveryProvince) {
        this.deliveryProvince = deliveryProvince;
    }
    
    /**
     * 获取收货省份
     *
     * @return 收货省份
     */
    public String getDeliveryProvince() {
        return deliveryProvince;
    }
    
    /**
     * 设置收货城市
     *
     * @param deliveryCity 收货城市
     */
    public void setDeliveryCity(String deliveryCity) {
        this.deliveryCity = deliveryCity;
    }
    
    /**
     * 获取收货城市
     *
     * @return 收货城市
     */
    public String getDeliveryCity() {
        return deliveryCity;
    }
    
    /**
     * 设置收货区县
     *
     * @param deliveryRegion 收货区县
     */
    public void setDeliveryRegion(String deliveryRegion) {
        this.deliveryRegion = deliveryRegion;
    }
    
    /**
     * 获取收货区县
     *
     * @return 收货区县
     */
    public String getDeliveryRegion() {
        return deliveryRegion;
    }
    
    /**
     * 设置收货详细地址
     *
     * @param deliveryAddress 收货详细地址
     */
    public void setDeliveryAddress(String deliveryAddress) {
        this.deliveryAddress = deliveryAddress;
    }
    
    /**
     * 获取收货详细地址
     *
     * @return 收货详细地址
     */
    public String getDeliveryAddress() {
        return deliveryAddress;
    }
    
    /**
     * 设置是否默认地址
     *
     * @param isDefaultAddress 是否默认地址
     */
    public void setIsDefaultAddress(Integer isDefaultAddress) {
        this.isDefaultAddress = isDefaultAddress;
    }
    
    /**
     * 获取是否默认地址
     *
     * @return 是否默认地址
     */
    public Integer getIsDefaultAddress() {
        return isDefaultAddress;
    }
    
    /**
     * 设置联系电话
     *
     * @param contactPhone 联系电话
     */
    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }
    
    /**
     * 获取联系电话
     *
     * @return 联系电话
     */
    public String getContactPhone() {
        return contactPhone;
    }
    
    /**
     * 设置联系人
     *
     * @param contactName 联系人
     */
    public void setContactName(String contactName) {
        this.contactName = contactName;
    }
    
    /**
     * 获取联系人
     *
     * @return 联系人
     */
    public String getContactName() {
        return contactName;
    }
    
    /**
     * 设置创建人
     *
     * @param createUser 创建人
     */
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    
    /**
     * 获取创建人
     *
     * @return 创建人
     */
    public String getCreateUser() {
        return createUser;
    }
    
    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * 设置状态：0默认，1管理员删除，2用户删除
     *
     * @param dataStatus 状态：0默认，1管理员删除，2用户删除
     */
    public void setDataStatus(Integer dataStatus) {
        this.dataStatus = dataStatus;
    }
    
    /**
     * 获取状态：0默认，1管理员删除，2用户删除
     *
     * @return 状态：0默认，1管理员删除，2用户删除
     */
    public Integer getDataStatus() {
        return dataStatus;
    }
    
    /**
     * 检查字段长度是否超长，检查非空字段是否有值
     *
     * @return 检查提示信息，为null时表示检查通过
     */
    public String valid() {
        
        if (StringUtils.isBlank(deliveryProvince)) {
            return "收货省份不能为空";
        }

        if (StringUtils.isBlank(deliveryCity)) {
            return "收货城市不能为空";
        }

        if (StringUtils.isBlank(deliveryRegion)) {
            return "收货区县不能为空";
        }

        if (StringUtils.isBlank(deliveryAddress)) {
            return "收货详细地址不能为空";
        }
        
        if (StringUtils.isBlank(contactPhone)) {
            return "联系电话不能为空";
        }
        
        if (StringUtils.isBlank(contactName)) {
            return "联系人不能为空";
        }
        
        if (StringUtils.isNotBlank(deliveryAddress) && deliveryAddress.length() > 200) {
            return "收货详细地址值超长，允许输入的最大长度为：200字符";
        }

        return null;
    }
}
